using System;
using System.Collections.Generic;
using System.Text;

namespace RideMe.FindAndReplace
{
    public interface ISearchStrategy
    {
        /// <remarks>
        /// Only with a call to this method the search strategy must
        /// update their pattern information. This method will be called 
        /// before the FindNext function.
        /// </remarks>
        bool CompilePattern();

        /// <remarks>
        /// The find next method should search the next occurrence of the 
        /// compiled pattern in the text using the textIterator and options.
        /// </remarks>
        SearchResult FindNext(ITextIterator textIterator);
    }
}
